全部文档

什么是Topic

物联网平台中,服务端和设备端通过Topic来实现消息通信。Topic是针对设备的概念,Topic类是针对产品的概念。产品的Topic类会自动映射到产品下的所有设备中,生成用于消息通信的具体设备Topic。

产品Topic类

为了方便海量设备基于海量Topic进行通信,简化授权操作,物联网平台增加了产品Topic类的概念。Topic类是一类Topic的集合。例如,产品的自定义Topic类/${pid}/${did}/user/update是具体Topic/${pid}/deviceid1/user/update/${pid}/deviceid2/user/update的集合。

您创建设备后,产品的所有Topic类会自动映射到设备上。您无需单独为每个设备创建Topic。

关于Topic类的说明:

  • Topic类中,以正斜线(/)进行分层,区分每个类目。其中,有两个类目为既定类目:${pid}表示产品ID,${did}表示设备ID。
  • 类目命名只能包含字母,数字和下划线(_)。每级类目不能为空。
  • 设备操作权限:发布表示设备可以往该Topic发布消息;订阅表示设备可以订阅该Topic获取消息。
  • Topic类是一个Topic模版配置,编辑更新某个Topic类后,可能对产品下所有设备使用该类Topic通信产生影响。建议在设备研发阶段设计好,设备上线后不再变更Topic类。
  • 产品Topic类的订阅操作权限是定义产品(所有设备)对此类Topic是否有发起订阅指令(SUB)的权限。 订阅(SUB)和取消订阅(UNSUB)都需由设备发起。设备发送SUB指令订阅某个Topic后,该订阅永久生效;仅在设备发起UNSUB指令取消订阅该Topic后,订阅才会被取消。如果您需要管控单个设备的消息收发,请在控制台的设备列表页禁用该设备或在业务上管控发送给设备的消息。

设备Topic

产品的Topic类不用于通信,只是定义Topic。用于消息通信的是具体的设备Topic。

  • Topic格式和Topic类格式一致。区别在于Topic类中的变量${did},在Topic中是具体的设备名称。
  • 设备对应的Topic是从产品Topic类映射出来,根据设备名称而动态创建的。设备的具体Topic中带有设备ID(即did),只能被该设备用于消息通信。例如,Topic:/${pid}/10032712/user/update归属于设备名为10032712的设备,所以只能被设备10032712用于发布或订阅消息,而不能被设备10032713用于发布或订阅消息。

Topic分类

类别 说明
基础通信Topic 物联网平台预定义的基础功能通信Topic,包含:
时钟同步相关Topic:时钟同步功即NTP服务,详情可参考协议规范>Topic约定>基础通信Topic
设备影子相关Topic:各Topic的用途和消息数据格式,详情可参考协议规范>Topic约定>基础通信Topic
配置更新相关Topic:各Topic的用途和消息数据格式,详情可参考协议规范>Topic约定>基础通信Topic
物模型Topic 物联网平台预定义的物模型通信Topic。各物模型功能Topic消息的数据格式,详情可参考协议规范>Topic约定>物模型通信Topic
自定义Topic 您可以根据业务需求,在产品的Topic类列表页,自定义Topic类。

Topic通配符

通配符 描述
# #必须出现在Topic的最后一个类目,代表本级及下级所有类目。
例如,/103791/10032712/user/#表示设备Topic /103791/10032712/user/update/103791/10032712/user/update/error
+ +代表本级所有类目。
例如,/103791/10032712/user/+/error,表示设备Topic /103791/10032712/user/get/error/103791/10032712/user/update/error

通配符可用于以下场合:

  • 使用通配符自定义Topic,实现批量订阅。

results matching ""

    No results matching ""